package com.tanjie.blackbean.system.admin.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.tanjie.blackbean.mybatis.query.PageParam;
import com.tanjie.blackbean.pojo.auth.UserInfoWithRolesAndPerms;
import com.tanjie.blackbean.pojo.system.UserInfoQuery;
import com.tanjie.blackbean.system.admin.model.user.MeVO;
import com.tanjie.blackbean.system.admin.model.user.UserDTO;
import com.tanjie.blackbean.system.admin.model.user.UserQuery;
import com.tanjie.blackbean.system.admin.model.user.UserVO;

import java.util.List;

/**
 * 用户表
 *
 * @author tanjie
 * @since 2022-04-20
 */
public interface IUserService {

    UserVO create(UserDTO dto);

    void update(UserDTO dto);

    void delete(String id);

    UserVO detail(String id);

    UserVO getByIdThr(String id);

    void checkIdExist(String id);

    UserVO getByUsername(String username);

    List<UserVO> queryList(UserQuery dto);

    IPage<UserVO> queryPage(UserQuery dto, PageParam pageParam);

    UserInfoWithRolesAndPerms queryUserInfo(UserInfoQuery loginParam);

    MeVO getCurrentUserInfo();

}